The present invention relates to methods and apparatus for managing processing resources in a processing system to achieve control of content distribution and/or execution on the processing system and to achieve desirable commercial objectives.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications are becoming more and more complex, and are placing ever increasing demands on processing systems. Graphics applications are among those that place the highest demands on a processing system because they require such vast numbers of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results.
Designers and manufacturers of processing systems are meeting the challenge to achieve faster processing speeds such that more and more complex software applications may be executed. A conventional business model dictates that the designer/manufacturer of the processing system may obtain a price commensurate with the capabilities of the system from a user seeking to purchase the processing system and execute content (e.g., programs) thereon. The conventional business model also dictates that the content may be developed by a third party or by the designer/manufacturer of the processing system. The designer/manufacturer may also license the third party to develop content for execution on the processing system.
Depending on the processing system architecture and the operating system running thereon, conventional business models and processing system designs cannot guarantee that a third party can be prevented from developing content for execution on the processing system unless a license or other form of compensation is obtained. For example, it may be desirable to have an open system architecture (hardware and software) in order to encourage the development of newer and more advanced content for enjoyment by the user. Unfortunately, an open system architecture does not provide many opportunities for controlling the execution of the content oh the processing system by the designer/manufacturer. Thus, the designer/manufacturer may find it difficult to share in the profits of content sales.
One approach to permitting the designer/manufacturer to share in the profits of content sales is disclosed in co-pending U.S. Patent Application No. 60/650,750, filed Feb. 7, 2005, entitled METHODS AND APPARATUS FOR RESOURCE MANAGEMENT IN A PROCESSOR, (further reference number SC04023US00), the entire disclosure of which is hereby incorporated by reference. This approach provides a processing system in which the ability of an application program to utilize the resources of the processing system are strictly regulated by the operating system of the processing system. Content providers (such as game developers, etc.) purchase the ability to use certain resources of the processing system upon which they wish to have their content executed. (Some of the resources of a processing system, such as a video game console, include a disc controller (CD, DVD, etc.), graphics chips, hard disc (HD) components, tuner circuitry, network interface circuitry, etc.) The purchase may take on many different forms, such as a one-time payment, a royalty-based payment schedule, etc. The usage may be unlimited or time limited.
The regulation of access to the resources of the processing system may be achieved by requiring the presentation of usage information, such as an authentication code and/or digital signature to the processing system. In return for payment, an authorizing entity (such as the designer/manufacturer of the processing system) may provide a private key of a private/public key pair to the content provider. The provider may run a known hash algorithm on the content to get a hash result and then encrypt the content and the hash result. As the operating system of the processing system may readily control whether certain resources are enabled to a program, the processing system may prevent the content from using certain resources unless: (1) the content and the hash result can be decrypted using the public key of the private/public key pair, and (2) the hash result matches an independently run hash of the content.
Although the above approach addresses the issue of permitting the designer/manufacturer to share in the profits of content sales, it has the consequence of preventing the user from executing shareware and freeware on the processing system. Indeed, providers of shareware and freeware are not likely to be in a position to purchase the ability to utilize the processing resources of a processing system from the designer/manufacturer. Thus, the user will be foreclosed from executing many shareware and/or freeware programs on the processing system.
Accordingly, there are needs in the art for new methods and apparatus for managing processing resources in a processing system such that the advantages of an open system architecture may be realized, the designer/manufacturer of the processing system may share in the rewards of content development and sales, and the user may enjoy the benefits of executing shareware and freeware programs on the processing system.